<?php
session_cache_limiter("nocache");
//session_start();
require_once('../utilidades/ConexionBD.php');
require_once('OrdTrabajo.php');
require_once('MaeMaterial.php');
require_once('MaeMercanciaEstado.php');
require_once('OrdTrabajoRecMercanciaItemSerial.php');
require_once('OrdTrabajoRecMercanciaItemAccesorio.php');
require_once('OrdTrabajoRecMercanciaItemSubItem.php');
require_once('OrdTrabajoRecMercanciaItemFoto.php');

class OrdTrabajoRecMercanciaItem {
    
    //--- Atributos

    //--- constructor
    function __construct(){
    }    

    //--- Metodos        
    public static function selectById($id){
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'selectById'
                ,NULL
                ,".$id."
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));                
        }
        //--- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        while($row = pg_fetch_array($res)) {
            $list=array(
                "id"                   =>$row["@id"],
                "fechaGrab"            =>$row["@fechaGrab"],
                "usuarioGrab"          =>$row["@usuarioGrab"],
                "activo"               =>$row["@activo"],
                "codOrdTrabajo"        =>$row["@codOrdTrabajo"],
                "codOrdTrabajoRecMercancia"     =>$row["@codOrdTrabajoRecMercancia"],            
                "codOrdTrabajoRecMercanciaItem" =>$row["@codOrdTrabajoRecMercanciaItem"],            
                "codMaeMaterial"        =>$row["@codMaeMaterial"],            
                "codPaisFabricacion"    =>$row["@codPaisFabricacion"],                            
                "codMaeMercanciaEstado" =>$row["@codMaeMercanciaEstado"],                            
                "codMaeObservacionItem" =>$row["@codMaeObservacionItem"],                            
                "descOtroMaeObservacionItem"    =>$row["@descOtroMaeObservacionItem"],                            
                "factura"       =>$row["@factura"],            
                "referencia"    =>$row["@referencia"],            
                "modelo"        =>$row["@modelo"],            
                "descripcion"   =>$row["@descripcion"],            
                "cantidad"      =>$row["@cantidad"],
                "lote"          =>$row["@lote"],
                "anoFabricacion"=>$row["@anoFabricacion"],
                "observaciones" =>$row["@observaciones"],
                "marca" =>$row["@marca"],
            );
            return json_encode($list);
        }
        return json_encode("");
    }
    
    public static function selectByIdOrdTrabajoRecMercanciaHTMLTableFormat($idordTrabajoRecMercancia){
        //---  cargo la informacion desde la BD
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'selectByIdOrdTrabajoRecMercancia'
                ,NULL
                ,".$idordTrabajoRecMercancia."
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
            );";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        
        $html="";
        $ot=new OrdTrabajo();
        
        while($row = pg_fetch_array($res)) {
            $ot->selectThisByCodigo($row["@codOrdTrabajo"]);
            
            $html=$html."<tr id='".$row["@id"]."'>";
            $html=$html."<td>".$row["@codOrdTrabajoRecMercanciaItem"]."</td>";        
            $html=$html."<td>".$ot->getCodOperacionInterna()."</td>";        
            $html=$html."<td>".$row["@factura"]."</td>";        
            $html=$html."<td>".$row["@referencia"]."</td>";        
            $html=$html."<td>";        
            $html=$html."&nbsp;<img class='icon-remove-RecMercanciaItem' id='icon-remove-RecMercanciaItem' src='../recursos/imagenes/remove.png' title='Eliminar el Registro'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-picture' id='icon-picture' src='../recursos/imagenes/photo.png' title='Anexar Foto'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-subitem' id='icon-subitem' src='../recursos/imagenes/sub_item.png' title='Agregar SubItems'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-accesorio' id='icon-accesorio' src='../recursos/imagenes/accesorios.png' title='Anexar Accesorios'>";        
            $html=$html."&nbsp;&nbsp;<img class='icon-serial' id='icon-serial' src='../recursos/imagenes/seriales.png' title='Anexar Seriales'>";        
            $html=$html."</td>";        
            $html=$html."</tr>";                    
        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return json_encode(array("HTML"=>$html));        
    }
    
    public static function selectByIdOrdTrabajoRecMercanciaPDFReport($idordTrabajoRecMercancia){
        //---  cargo la informacion desde la BD
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'selectByIdOrdTrabajoRecMercancia'
                ,NULL
                ,".$idordTrabajoRecMercancia."
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
            );";
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            echo str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()));                
            return null;
        }
        
        $html="";
        $ot=new OrdTrabajo();
        
        while($row = pg_fetch_array($res)) {
            //--- cargo el material
            $mat=new MaeMaterial();
            $mat->selectThisByCodigo($row["@codMaeMaterial"]);
            //--- cargo el pais
            $paisF=new MaePais();
            $paisF->selectThisByCodigo($row["@codPaisFabricacion"]);
            //--- cargo el estado de la mercancia
            $estM=new MaeMercanciaEstado();
            $estM->selectThisByCodigo($row["@codMaeMercanciaEstado"]);

$html=$html.'
<tr>
    <td colspan="5" bgcolor="#6BAF2B" style="text-align:center;">
        <div>
            <p style="font-size:11px; font-weight:bold;">ITEM '.$row["@codOrdTrabajoRecMercanciaItem"].'</p>                        
        </div>
    </td>
</tr>
<tr>
    <td style="width: 10%; font-weight:bold; font-size:11px;">No.Factura</td>
    <td style="width: 10%; font-weight:bold; font-size:11px;">Referencia</td>
    <td style="width: 20%; font-weight:bold; font-size:11px;">Marca</td>
    <td style="width: 30%; font-weight:bold; font-size:11px;">Modelo</td>
    <td style="width: 28%; font-weight:bold; font-size:11px;">Pais</td>
</tr>
<tr>
    <td style="font-size:11px;">'.$row["@factura"].'</td>
    <td style="font-size:11px;">'.$row["@referencia"].'</td>
    <td style="font-size:11px;">'.$row["@marca"].'</td>
    <td style="font-size:11px;">'.$row["@modelo"].'</td>
    <td style="font-size:11px;">'.$paisF->getNombreMaePais().'</td>
</tr>
<tr>
    <td colspan="5" style="font-weight:bold; font-size:11px;">Descripcion</td>    
</tr>
<tr>
    <td colspan="5" style="font-size:11px;">'.$row["@descripcion"].'</td>
</tr>
<tr>
    <td colspan="3" style="font-weight:bold; font-size:11px;">Material</td>
    <td colspan="2" style="font-weight:bold; font-size:11px;">estado</td>
</tr>
<tr>
    <td colspan="3" style="font-size:11px;"> '.$mat->getNombreMaeMaterial().'</td>
    <td colspan="2" style="font-size:11px;">'.$estM->getNombreMaeMercanciaEstado().'</td>
</tr>';

//--- cargo los Seriales (si tiene...)
$seriales_=OrdTrabajoRecMercanciaItemSerial::selectByIdOrdTrabajoRecMercanciaItemLista($row["@id"]);
if(trim($seriales_)!=""){
    $html=$html.
       '<tr>
            <td colspan="5" style="font-weight:bold; font-size:11px;">Seriales</td>    
        </tr>
        <tr>
            <td colspan="5" style="font-size:11px;">'.$seriales_.'</td>
        </tr>
    ';
}

//--- cargo los Accesorios (si tiene...)
$accesorios_=OrdTrabajoRecMercanciaItemAccesorio::selectByIdOrdTrabajoRecMercanciaItemLista($row["@id"]);
if(trim($accesorios_)!=""){
    $html=$html.
       '<tr>
            <td colspan="5" style="font-weight:bold; font-size:11px;">Accesorios</td>    
        </tr>
        <tr>
            <td colspan="5" style="font-size:11px;">'.$accesorios_.'</td>
        </tr>
    ';
}

//--- cargo las Observaciones (si tiene...)
if(trim($row["@observaciones"])!=""){
$html=$html.
'<tr>
    <td colspan="5" style="font-weight:bold; font-size:11px;">Observaciones</td>    
</tr>
<tr>
    <td colspan="5" style="font-size:11px;">'.$row["@observaciones"].'</td>
</tr>
';
}

//--- cargo las fotos del ITEM
$html=$html.OrdTrabajoRecMercanciaItemFoto::selectByIdOrdTrabajoRecMercanciaItemPDFReport($row["@id"]);

    
//--- con esta parte agrego los subitems del item actual a la lista
$html=$html.OrdTrabajoRecMercanciaItemSubItem::selectByIdOrdTrabajoRecMercanciaItemPDFReport($row["@id"]);


        }
        //-- Cierro la conexion
        ConexionBD::get()->desconectarse();        
        
        //-- retorno el resultado
        return $html;        
    }
    
    public static function insert(
             $codUsuario,$activo,$codOrdTrabajo,$codOrdTrabajoRecMercancia,$codOrdTrabajoRecMercanciaItem
            ,$codMaeMaterial,$codPaisFabricacion,$codMaeMercanciaEstado,$codMaeObservacionItem,$descOtroMaeObservacionItem
            ,$factura,$referencia,$modelo,$descripcion,$cantidad,$lote,$anoFabricacion,$observaciones,$marca)
    {
        //---  cargo la informacion desde la BD
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'insert'
                ,NULL
                ,NULL
                ,NULL
                ,'".$codUsuario."'
                ,'".(($activo) ? 'true' : 'false')."'
                ,'".$codOrdTrabajo."'
                ,'".$codOrdTrabajoRecMercancia."'
                ,'".$codOrdTrabajoRecMercanciaItem."'
                ,'".$codMaeMaterial."'
                ,'".$codPaisFabricacion."'
                ,'".$codMaeMercanciaEstado."'
                ,'".$codMaeObservacionItem."'
                ,'".$descOtroMaeObservacionItem."'
                ,'".$factura."'
                ,'".$referencia."'
                ,'".$modelo."'
                ,'".$descripcion."'
                ,'".$cantidad."'
                ,'".$lote."'
                ,'".$anoFabricacion."'
                ,'".$observaciones."'
                ,'".$marca."'
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();   
        
        //--- debo retornar el id que se genero al hacer la insercion
        while($row = pg_fetch_array($res)) {
            return json_encode(array("id"=>$row["@id"]));
        }
        //-- retorno sino devolvio un id, retorno cero para que no se generen erroes en la vista
        return json_encode(array("id"=>"0"));
    }
    /*
    public static function update(
             $codUsuario,$id,$activo,$codOrdTrabajo,$codOrdTrabajoRecMercancia,$codOrdTrabajoRecMercanciaItem
            ,$codMaeMaterial,$codPaisFabricacion,$codMaeMercanciaEstado,$codMaeObservacionItem,$descOtroMaeObservacionItem
            ,$factura,$referencia,$modelo,$descripcion,$cantidad,$lote,$anoFabricacion,$observaciones,$marca)
    {
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'update'
                ,NULL
                ,".$id."
                ,NULL
                ,'".$codUsuario."'
                ,'".(($activo) ? 'true' : 'false')."'
                ,'".$codOrdTrabajo."'
                ,'".$codOrdTrabajoRecMercancia."'
                ,'".$codOrdTrabajoRecMercanciaItem."'
                ,'".$codMaeMaterial."'
                ,'".$codPaisFabricacion."'
                ,'".$codMaeMercanciaEstado."'
                ,'".$codMaeObservacionItem."'
                ,'".$descOtroMaeObservacionItem."'
                ,'".$factura."'
                ,'".$referencia."'
                ,'".$modelo."'
                ,'".$descripcion."'
                ,'".$cantidad."'
                ,'".$lote."'
                ,'".$anoFabricacion."'
                ,'".$observaciones."'
                ,'".$marca."'
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }
    */
    public static function delete($codUsuario,$id){
        //--- verifico que el registro actual exista
        if($id==0){
            return;
        }
        //---  cargo la informacion desde la BD
        $consulta="
            select * from \"FuncOrdTrabajoRecMercanciaItem\"(
                'delete'
                ,NULL
                ,".$id."
                ,NULL
                ,'".$codUsuario."'
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
                ,NULL
            );";
        //--- Obtengo los datos de postgres
        @$res= pg_query(ConexionBD::get()->conectarse(),$consulta);
        //--- veo si se presento algun error
        if(!$res) {
            return json_encode(array("ERROR"=>str_replace("ERROR:","",pg_last_error(ConexionBD::get()->conectarse()))));
        }
        ConexionBD::get()->desconectarse();        
        return json_encode("");
    }    
}
?>
